Pmoo.Mask = new function(){
	var self = this;
	
	/**
	 * 是否已经初始化
	 */
	var inited = false;
	
	/**
	 * 遮罩层容器
	 */
	var mask = null;
	
	/**
	 * 遮罩层重设置大小定时器
	 */
	var showTimer = null;
	
	/**
	 * 配置项
	 */
	var settings = {
		/**
		 * 遮罩层容器id
		 */
		maskID : 'j_LightBoxOverlay',
		/**
		 * 遮罩层className
		 */
		maskClass : 'j_LightBoxOverlay',
		/**
		 * 重新创建遮罩层容器
		 */
		insertDom : false
	};
	
	/**
	 * 遮罩层样式
	 */
	var _css = [
	'{',
	'    position: absolute;',
	'    z-index:2;',
	'    top:0px;',
	'    left:0px;',
	'    height:100%;',
	'    width:100%;',
	'    display:none;',
	'    background-color:#000;',
	'    filter:alpha(opacity=75);',
	'    opacity: 0.75;',
	'    }'].join('');
	
	/**
	 * 初始化函数
	 */
	function __init__(){
		if(inited){
			return false;
		}
		if(settings.insertDom){
			//将遮罩层样式写入页面
			_css = '.' + settings.maskClass + _css;
			Pmoo.Utils.addCss(_css);
			mask = new Element('div',{
				'id' : settings.maskID,
				'class' : settings.maskClass
			});
			mask.inject(document.body);
		}
		else{
			mask = $(settings.maskID);
		}
		inited = true;
	}
	
	/**
	 * 遮罩层自适应页面大小
	 */
	function resize(){
		var pageSize = document.getScrollSize();
		mask.setStyles({
			width : pageSize.x,
			height : pageSize.y
		});					
	}
	
	/**
	 * 修改配置
	 * @param {Object|String} ini
	 * @param {Mixed} value
	 * usage : 
	 * 	Pmoo.Mask.ini_set({opt1:'xxx',opt2:'xxx'})
	 * 	或者
	 *  Pmoo.Mask.ini_set('opt1', 'xxx');
	 */
	this.ini_set = function(ini, value){
		if(inited){
			//初始化之后不能再修改参数
			alert('Mask已经初始化');
			return false;
		}
		if($type(ini) == 'object'){
			$extend(settings, ini)
		}
		else if(arguments.length == 2 && $type(ini) == 'string'){
			settings[ini] = value;
		}
	};
	
	/**
	 * 显示遮罩层
	 */
	this.show = function(){
		__init__();
		resize();
		mask.show();
		showTimer = setInterval(function(){
			resize();
		},500);
	};
	
	/**
	 * 隐藏遮罩层
	 */
	this.hide = function(){
		clearInterval(showTimer);
		if(mask){
			mask.hide();
		}
	};
};





